import { defineStore } from "pinia"

/**
 * 用户状态管理
 * 管理用户信息、登录状态等
 */
export const useUserStore = defineStore('user', () => {
    // 状态
    const token = ref('')
    const userInfo = ref({
      id: '',
      username: '',
      avatar: ''
    })
  
    // 计算属性
    const isLoggedIn = computed(() => Boolean(token.value))
  
    // 操作方法
    function setToken(newToken: string) {
      token.value = newToken
      localStorage.setItem('token', newToken)
    }
  
    function setUserInfo(info: typeof userInfo.value) {
      userInfo.value = info
    }
  
    function logout() {
      token.value = ''
      userInfo.value = {
        id: '',
        username: '',
        avatar: ''
      }
      localStorage.removeItem('token')
    }
  
    // 初始化
    function init() {
      const savedToken = localStorage.getItem('token')
      if (savedToken) {
        token.value = savedToken
        // 这里可以添加获取用户信息的逻辑
      }
    }
  
    return {
      token,
      userInfo,
      isLoggedIn,
      setToken,
      setUserInfo,
      logout,
      init
    }
  })